//基本数据类型 变量存的就是值
//复杂数据类型 变量存的是地址（指针）,指针寸的是一个地址，这个地址指向的值是真正的值。 
//通过 *类型定义指针变量， 通过 & 获取变量的地址  e.g var pa *int = &i
//通过 * 获取指针指向的值 e.g  *pa

package main

import "fmt"

func main(){
	//基本数据类型 i  内存中直接 存储10
	var i int = 10
	//获取i的内存空间地址 通过 取地址& 获取 
	fmt.Println("i在内存中的地址",&i)

	//pointI是一个指针变量，表示指向一个int的地址
	var pointI  *int = &i;
	fmt.Printf("pointI=%v\n",pointI)
	//指针本身也有地址
	fmt.Printf("pointI地址=%v\n",&pointI)
	//获取指针指向的值
	fmt.Printf("pointI指向的值%v\n",*pointI)

	var num int = 9
	fmt.Printf("num 地址 = %v\n",&num)

	//通过指针修改值
	var pnum = &num
	*pnum = 10
	fmt.Println("num=",num)

	



}